import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import { viteMockServe } from 'vite-plugin-mock'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'
// https://vitejs.dev/config/
export default defineConfig(({command})=>{
  return{
  transpileDependencies: true,
  // assetsInclude: ['**/*.hdr', '**/*.glb'],
  assetsInclude: ['**/*.hdr', '**/*.glb'],
  plugins: [
    vue(),
    vueJsx(),
     viteMockServe({
        localEnabled: command === 'serve',
        
      }),
      createSvgIconsPlugin({
        // Specify the icon folder to be cached
        iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
        // Specify symbolId format
        symbolId: 'icon-[dir]-[name]',
      }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  server: {
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:7001',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
    },
  },
}
})
// module.exports = {
//   // ...
//   devServer: {
//     setupMiddlewares: (middlewares, devServer) => {
//       if (!devServer) {
//         throw new Error('webpack-dev-server is not defined');
//       }

//       devServer.app.get('/setup-middleware/some/path', (_, response) => {
//         response.send('setup-middlewares option GET');
//       });

//       // 如果你想在所有其他中间件之前运行一个中间件或者当你从 `onBeforeSetupMiddleware` 配置项迁移时，
//       // 可以使用 `unshift` 方法
//       middlewares.unshift({
//         name: 'first-in-array',
//         // `path` 是可选的
//         path: '/foo/path',
//         middleware: (req, res) => {
//           res.send('Foo!');
//         },
//       });

//       // 如果你想在所有其他中间件之后运行一个中间件或者当你从 `onAfterSetupMiddleware` 配置项迁移时，
//       // 可以使用 `push` 方法
//       middlewares.push({
//         name: 'hello-world-test-one',
//         // `path` 是可选的
//         path: '/foo/bar',
//         middleware: (req, res) => {
//           res.send('Foo Bar!');
//         },
//       });

//       middlewares.push((req, res) => {
//         res.send('Hello World!');
//       });

//       return middlewares;
//     },
//   },
// };